package com.qm.chp10interface;

/**
 * jdk1.8 以后新增的功能：
 * 
 * 默认方法（就是普通实例方法）
 * /
 * 必须用 default 修饰，默认会 public 修饰
 * 必须用接口的实现类的对象来调用
 * 必须有默认实现
 * -----------------
 * 静态方法
 * /
 * 默认会 public 修饰
 * 接口的静态方法必须用接口的类名本身来调用
 * 调用格式：ClassName.method()
 * 必须有默认实现
 * 私有方法：JDK 1.9 才开始有的，只能在本类中被其他的默认方法或者私有方法访问
 */

public interface InterfaceJDK8 {
  // 抽象方法！！
  void work();

  // a.默认方法（就是之前写的普通实例方法）
  // 必须用接口的实现类的对象来调用。
  default void run() {
    go();
    System.out.println("开始跑步🏃‍");
  }

  // b.静态方法
  // 注意：接口的静态方法必须用接口的类名本身来调用
  static void inAddr() {
    System.out.println("我们在武汉");
  }

  // c.私有方法（就是私有的实例方法）: JDK 1.9才开始有的。
  // 只能在本接口中被其他的默认方法或者私有方法访问。
  private void go() {
    System.out.println("开始。。");
  }
}